home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekkan Dennou Club 145
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z
/
Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin
/
tools
/
sharp
/
sxwork3.lzh
/
福袋
/
注釈付ヘッダ
/
CONSOLE.H
next >
Wrap
Text File
|
1994-02-20
|
9KB
|
329 lines
/*
* console.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
*/
#ifndef __CONSOLE_H
#define __CONSOLE_H
#ifndef __SXDEF2_H
#include <sxdef2.h>
#endif
#ifdef FORWORD
#define __PROTO_TYPE
#endif
#ifdef __STDC__
#define __PROTO_TYPE
#endif
typedef enum KeyCode KeyCode; /* キーコード */
typedef struct Mouse Mouse; /* マウスレコード */
typedef struct MsCsr MsCsr; /* ポインタレコード */
typedef struct AryQue AryQue; /* 配列キューバッファ */
typedef struct KBoard KBoard; /* キーボードレコード */
typedef struct Key Key; /* キーレコード */
/*
* マウスマン (Mouse Man)
*/
struct Mouse { /* マウスレコード */
Bitmap *bmap; /* ビットマップポインタ */
short multi; /* マウスポインタの移動係数 */
char rvsSwitch; /* 左利き用マウスフラグ */
char rvsForBack; /* 前後逆転フラグ */
char rvsLeftRight; /* 左右逆転フラグ */
unsigned long nowPosition; /* リアルタイムなポインタ座標 */
struct MsSwitch {
char leftSw; /* 左ボタンの状態 */
char rightSw; /* 右ボタンの状態 */
} nowSwitch; /* リアルタイムなボタンの状態 */
unsigned long thePosition; /* 現在のポインタ座標 */
struct MsSwitch theSwitch; /* 現在のボタンの状態 */
short deltaX; /* X変位 */
short deltaY; /* Y変位 */
short restX; /* X変位×multi/256 */
short restY; /* Y変位×multi/256 */
unsigned long oldPosition; /* 前回のポインタ座標 */
struct MsSwitch oldSwitch; /* 前回のボタンの状態 */
long cache; /* ビットキャッシュ */
MsCsr **csrHdl; /* マウスポインタへのハンドル */
short bits; /* テキストにマウスを書くページ */
short csrLvl; /* ポインタレベル */
short drawing; /* ドローフラグ */
char cached; /* ビットキャッシュフラグ */
};
struct MsCsr { /* ポインタレコード */
Point hotSpot; /* ホットスポットの座標 */
BitImg mask[16]; /* マスクパターン(16×16ドット)*/
BitImg pattern[4][16]; /* ポインタパターン(テキストタイプ、
4ページ、16×16ドット) */
};
/*
* キーボードマン (Keyboard Man)
*/
/* キーボードフラグ */
#define KB_HALT 1 /* [OPT.1]と[XF2]を共通にする */
#define KB_RESETON (1 << 1) /* キーリセットで終了する */
#define KB_OLDON (1 << 2) /* 以前の処理アドレスを呼ぶ */
#define KB_LEDON (1 << 3) /* LED制御 */
#define KB_CLICKON (1 << 4) /* クリック音 */
#define KB_REPEATON (1 << 5) /* キーリピート */
#define KB_ASSIGNON (1 << 6) /* キーアサイン */
enum KeyCode { /* キーコード */
K_ESC = 0x01, /* [ESC]キー */
K_1, /* [1]キー */
K_2, /* [2]キー */
K_3, /* [3]キー */
K_4, /* [4]キー */
K_5, /* [5]キー */
K_6, /* [6]キー */
K_7, /* [7]キー */
K_8, /* [8]キー */
K_9, /* [9]キー */
K_0, /* [0]キー */
K_MINUS, /* [-]キー */
K_CARET, /* [^]キー */
K_YEN, /* [\]キー */
K_BS, /* [BS]キー */
K_TAB, /* 0x10 */ /* [TAB]キー */
K_Q, /* [Q]キー */
K_W, /* [W]キー */
K_E, /* [E]キー */
K_R, /* [R]キー */
K_T, /* [T]キー */
K_Y, /* [Y]キー */
K_U, /* [U]キー */
K_I, /* [I]キー */
K_O, /* [O]キー */
K_P, /* [P]キー */
K_AT, /* [@]キー */
K_LBRACK, /* '['キー */
K_CR, /* [CR]キー */
K_A, /* [A]キー */
K_S, /* [S]キー */
K_D, /* 0x20 */ /* [D]キー */
K_F, /* [F]キー */
K_G, /* [G]キー */
K_H, /* [H]キー */
K_J, /* [J]キー */
K_K, /* [K]キー */
K_L, /* [L]キー */
K_SEMI, /* [;]キー */
K_COLON, /* [:]キー */
K_RBRACK, /* ']'キー */
K_Z, /* [Z]キー */
K_X, /* [X]キー */
K_C, /* [C]キー */
K_V, /* [V]キー */
K_B, /* [B]キー */
K_N, /* [N]キー */
K_M, /* 0x30 */ /* [M]キー */
K_COMMA, /* [,]キー */
K_PERIOD, /* [.]キー */
K_SLASH, /* [/]キー */
K__, /* [_]キー */
K_SPACE, /* [ ]キー */
K_HOME, /* [HOME]キー */
K_DEL, /* [DEL]キー */
K_RUP, /* [ROLL UP]キー */
K_RDOWN, /* [ROLL DOWN]キー */
K_UNDO, /* [UNDO]キー */
K_LEFT, /* [←]キー */
K_UP, /* [↑]キー */
K_RIGHT, /* [→]キー */
K_DOWN, /* [↓]キー */
K_CLR, /* [CLR]キー */
KT_SLASH, /* 0x40 */ /* テンキーの[/]キー */
KT_ASTERI, /* テンキーの[*]キー */
KT_MINUS, /* テンキーの[-]キー */
KT_7, /* テンキーの[7]キー */
KT_8, /* テンキーの[8]キー */
KT_9, /* テンキーの[9]キー */
KT_PLUS, /* テンキーの[+]キー */
KT_4, /* テンキーの[4]キー */
KT_5, /* テンキーの[5]キー */
KT_6, /* テンキーの[6]キー */
KT_EQUAL, /* テンキーの[=]キー */
KT_1, /* テンキーの[1]キー */
KT_2, /* テンキーの[2]キー */
KT_3, /* テンキーの[3]キー */
K_ENTER, /* [ENTER]キー */
KT_0, /* テンキーの[0]キー */
KT_COMMA, /* 0x50 */ /* テンキーの[,]キー */
KT_PERIOD, /* テンキーの[.]キー */
K_KIGO, /* [記号入力]キー */
K_TOROKU, /* [登録]キー */
K_HELP, /* [HELP]キー */
K_XF1, /* [XF1]キー */
K_XF2, /* [XF2]キー */
K_XF3, /* [XF3]キー */
K_XF4, /* [XF4]キー */
K_XF5, /* [XF5]キー */
K_KANA, /* [かな]キー */
K_ROMAJI, /* [ローマ字]キー */
K_CODEIN, /* [コード入力]キー */
K_CAPS, /* [CAPS]キー */
K_INS, /* [INS]キー */
K_HIRA, /* [ひらがな]キー */
K_ZEN, /* 0x60 */ /* [全角]キー */
K_BREAK, /* [BREAK]キー */
K_COPY, /* [COPY]キー */
K_F1, /* [F1]キー */
K_F2, /* [F2]キー */
K_F3, /* [F3]キー */
K_F4, /* [F4]キー */
K_F5, /* [F5]キー */
K_F6, /* [F6]キー */
K_F7, /* [F7]キー */
K_F8, /* [F8]キー */
K_F9, /* [F9]キー */
K_F10, /* [F10]キー */
K_SHIFT = 0x70, /* [SHIFT]キー */
K_CTRL, /* [CTRL]キー */
K_OPT1, /* [OPT.1]キー */
K_OPT2 /* [OPT.2]キー */
};
struct AryQue { /* 配列キューバッファ */
short size; /* 要素のサイズ */
short count; /* 要素の数 */
void *start; /* バッファの先頭 */
void *read; /* 次に読むデータの位置 */
void *write; /* 次に書く位置 */
};
struct KBoard { /* キーボードレコード */
AryQue keyBuf; /* キーバッファ */
unsigned long shiftKey; /* シフトキービット */
short data; /* スキャンデータ */
char flag[16]; /* キーボードフラグ */
char pad[10];
char map[128]; /* キーマップ */
char assign[128]; /* キーアサインテーブル */
};
/*
* キーマン (Key Man)
*/
struct Key { /* キーレコード */
AryQue msgQue; /* メッゼージキューバッファ */
unsigned long shiftKey; /* シフトキービット */
char *map; /* キーマップへのポインタ */
KBoard *kbr; /* キーボードレコードへのポインタ */
void *ascJob;
void *cacheA;
void *cacheK;
void *cacheM;
};
#ifdef __PROTO_TYPE
/*
* エクセプションマン (Exception Man)
*/
int EXEnVDISPST(void (*)(void));
int EXDeVDISPST(void (*)(void));
/*
* マウスマン (Mouse Man)
*/
void MSInitCsr(void);
void MSShowCsr(void);
void MSHideCsr(void);
void MSSetCsr(MsCsr **);
void MSObscureCsr(void);
void MSShieldCsr(Rect *, LPoint);
Mouse *MSGetCurMsr(void);
long MSMultiGet(void);
long MSMultiSet(long);
/*
* アニメーションマン (Animation Man)
*/
int EXAnimStart(int, int, MsCsr ***);
int EXAnimEnd(void);
BOOLEAN EXAnimTest(void);
/*
* キーボードマン (Keyboard Man)
*/
char *KBMapGet(KBoard *);
long KBShiftGet(KBoard *);
long KBShiftSet(KBoard *, long);
int KBSimulate(KBoard *, long);
int KBScan(KBoard *);
int KBGet(KBoard *);
void KBEmpty(KBoard *);
KBoard *KBInit(int, int);
void KBTini(KBoard *);
KBoard *KBCurKbrGet(void);
BOOLEAN KBOldOnGet(KBoard *);
BOOLEAN KBOldOnSet(KBoard *, BOOLEAN);
int KBFlagGet(KBoard *);
int KBFlagSet(KBoard *, int);
/*
* キーマン (Key Man)
*/
void KMEmpty(Key *);
int KMPost(Key *, int, int);
int (*KMAscJobSet(Key *, int (*)(void)))(void);
int KMSimulate(Key *, int);
void KMTask(Key *);
Key *KMInit(long);
void KMTini(Key *);
Key *KMCurKmrGet(void);
#undef __PROTO_TYPE
#else
/*
* エクセプションマン (Exception Man)
*/
int EXEnVDISPST();
int EXDeVDISPST();
/*
* マウスマン (Mouse Man)
*/
void MSInitCsr();
void MSShowCsr();
void MSHideCsr();
void MSSetCsr();
void MSObscureCsr();
void MSShieldCsr();
Mouse *MSGetCurMsr();
long MSMultiGet();
long MSMultiSet();
/*
* アニメーションマン (Animation Man)
*/
int EXAnimStart();
int EXAnimEnd();
BOOLEAN EXAnimTest();
/*
* キーボードマン (Keyboard Man)
*/
char *KBMapGet();
long KBShiftGet();
long KBShiftSet();
int KBSimulate();
int KBScan();
int KBGet();
void KBEmpty();
KBoard *KBInit();
void KBTini();
KBoard *KBCurKbrGet();
int KBOldOnGet();
int KBOldOnSet();
int KBFlagGet();
int KBFlagSet();
/*
* キーマン (Key Man)
*/
void KMEmpty();
int KMPost();
int (*KMAscJobSet())();
int KMSimulate();
void KMTask();
Key *KMInit();
void KMTini();
Key *KMCurKmrGet();
#endif __PROTO_TYPE
#endif __CONSOLE_H